package business.iservices;


import business.coding.CenterWeightAndWords;
import result.Result;



/**
 * Interfaz de la clase que da acceso a los servicios de la codificacion semimanual
 * @author 53385255R
 *
 */
public interface IBatchPosCodeService {

	/**
	 * Inserta todos los corps precodificados y no codificados en la tabla de cache para la filtracion
	 * @param filter
	 * @return resultado de la accion
	 */
	Result<Object> insertFilteredCorpsIntoCache(String filter);

	/**
	 * Obtiene los corps filtrados para el rango especificado
	 * @param id1
	 * @param id2
	 * @param withCoded podemos excluir los que ya se hayan codificado
	 * @return listado de corps en cache
	 */
	Result<business.cache.CachePreCodeCorp> getCacheCorps(int id1, int id2,boolean withCoded);

	/**
	 * Obtiene los centros candidatos para todos los centros que aparezcan como checked en la cache
	 * @return listado de centros candidatos
	 */
	Result<CenterWeightAndWords> getCandidateCentersForSelectedCacheCorps();

	/**
	 * Imprime el identificador maximo de la tabla precodecorp y el numero de paginaciones maximas
	 * @return resultado de la accion
	 */
	Result<Object> printMaxIdCodeCorp();

	/**
	 * Marca o desmarca todos los cacheprecodecorps de cache como marcados
	 * @return resultado de la accion
	 */
	Result<Object> checkAllCachePreCodeCorp(boolean check);

	/**
	 * Marca o desmarca el cacheprecodecorp de cache 
	 * @param _selected_idcodecorp idcodecorp indicado
	 * @return resultado de la accion
	 */
	Result<Object> checkCachePreCodeCorp(Integer idcodecorp,  boolean check);

	/**
	 * @return todos los corps filtrados en la cache
	 */
	Result<business.cache.CachePreCodeCorp>  getAllCacheCorps();



	
}
